package ${package_name}.dao;
import java.util.List;
import ${package_name}.po.${table_name}PO;
import ${package_name}.qo.${table_name}QO;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ${table_name}Dao {

    /**
     * 保存数据
     *
     * @author: ${author}
     * @date: ${date}
     * @param ${table_name}PO 持久对象
     */
    void save(${table_name}PO ${table_name?uncap_first}PO);

    /**
     * 根据ID删除
     *
     * @author: ${author}
     * @date: ${date}
     * @param id 数据ID
     */
    void deleteById(String id);

    /**
     * 根据ID修改
     *
     * @author: ${author}
     * @date: ${date}
     * @param ${table_name}PO 持久对象
     */
    void updateById(${table_name}PO ${table_name?uncap_first}PO);

    /**
     * 根据id查询
     *
     * @author: ${author}
     * @date: ${date}
     * @param id 主键编号
     * @return ${table_name}PO
     */
    ${table_name}PO getById(String id);

    /**
     * 根据条件查询
     *
     * @author: ${author}
     * @date: ${date}
     * @param ${table_name}QO 查询条件
     * @return ${table_name}PO
     */
    ${table_name}PO getByCondition(${table_name}QO ${table_name?uncap_first}QO);

        /**
     * 根据条件查询集合
     *
     * @author: ${author}
     * @date: ${date}
     * @param ${table_name}QO 查询对象
     * @return List<${table_name}PO>
    */
    List<${table_name}PO> queryList(${table_name}QO ${table_name?uncap_first}QO);


    /**
    * 根据条件分页查询集合
    *
    * @author: ${author}
    * @date: ${date}
    * @param ${table_name}QO 查询对象
    * @return List<${table_name}PO>
    */
    List<${table_name}PO> queryPage(${table_name}QO ${table_name?uncap_first}QO);

    /**
    * 统计分页查询总记录数量
    *
    * @author: ${author}
    * @date: ${date}
    * @param ${table_name}QO 查询对象
    * @return long
    */
    long countQueryPage(${table_name}QO ${table_name?uncap_first}QO);

    /**
    * 根据条件统计数量
    *
    * @author: ${author}
    * @date: ${date}
    * @param ${table_name}QO 查询对象
    * @return long
    */
    long count(${table_name}QO ${table_name?uncap_first}QO);

    /**
    * 批量保存数据
    *
    * @author: ${author}
    * @date: ${date}
    * @param ${table_name}POList 持久对象
    */
    void saveBatch(List<${table_name}PO> ${table_name?uncap_first}POList);

   }
